iT邦幫忙

1

鼠年全馬鐵人挑戰 WEEK 36:封包測試工具 - Charles (一)

  • 分享至 

  • xImage
  •  

           Photo on charlesproxy.com


前言

Charles 是在電腦上運行的 Web Proxy (HTTP Proxy / HTTP Monitor)
將 Web 瀏覽器(或 Internet application)配置為通過 Charles 訪問 Internet
然後 Charles 可以透過記錄和顯示所有發送和接收的數據

在 Web 和 Internet 開發中 無法得知 Client 端與 Server 間發送和接收的內容
但是透過 Charles 的設定就可以輕鬆查看發生的情況
讓調試變得快速且可靠從而節省時間

補充說明:
Charles 是一個收費的軟體,雖然可以免費試用,但是每次啟動都需要等待 10 秒鐘,並且每次使用時間不能超過 30 分鐘。因此如果需要長時間進行封包調適時,會因為 Charles 強制關閉而遇到影響。

分享重點

  • 安裝 Charles
  • 選項欄中的 Proxy 功能介紹
    • Recording Settings
    • SSL Proxying Settings
    • Throttle Settings
    • Breakpoint Settings
    • Reverse Proxies Settings
    • Port Forwarding Settings
    • macOS Proxy
    • Proxy Settings
    • Access Control Settings
    • External Proxy Settings
    • Web Interface Settings

安裝 Charles

前往 Charles 的官方網站進行安裝
Download a Free Trial of Charles • Charles Web Debugging Proxy

可以依照自己的作業系統進行安裝
以下內容將使用 MacOS  做操作分享

下載完成後點選檔案將其解壓縮
就完成安裝囉~ ٩ʕ•͡וʔ۶

開啟 Charles

安裝完 Charles 後就可以來看看 Charles 的 GUI 介面了


介紹 Charles

Charles 選項欄中提供相當多的功能
File, Edit, View, Proxy, Tools, Window, Help
而其中又以 Proxy 與 Tools 內容的功能較為常用
以下將進一步分享 Proxy 中所提供的功能

選項欄 - Proxy

  • Start/Stop Recording
      開始/停止 捕獲請求

  • Start/Stop SSL Proxying
      開始/停止 SSL 代理

  • Start/Stop Throttling
      開始/停止 網速節流

  • Enable/Disable Breakpoints
      開啟/關閉 斷點

  • Recording Settings
      進一步設定捕獲請求的內容
      此設定的內容將在 Start Recording 時被執行
      可以透過 Import/Export 來匯入匯出設定內容
      而其中設定的內容分成了三個

    • Options:

      Recording size limits:
        可以設定捕獲請求的最大限制
        當捕獲請求超過限制 Charles 將會通知並停止錄製
      Limit recording history:
        可以設定歷史捕獲請求的最大限制
        當歷史捕獲請求超過限制 Charles 將會自行清除舊的捕獲請求
      Limit WebSocket transaction history:
        可以設定歷史 WebSocket 的最大限制
        當歷史 WebSocket 超過限制 Charles 將會自行清除舊的捕獲請求

    • Include: 只有與設定的位址匹配的請求才會被錄製
    • Exclude: 只有與設定的位址匹配的請求將不會被錄製
  • SSL Proxying Settings
      進一步設定 SSL 代理的內容
      此設定的內容將在 Start Proxying Settings 時被執行
      Charles 將會顯示 SSL 請求和回傳的純文本內容
      可以透過 Include/Exclude 設定匹配的位址
      也可以直接在想要啟用 SSL 代理的請求點擊右鍵選擇 Enable SSL Proxying

  • Throttle Settings
      進一步設定網速節流的內容 換句話說就是模擬網速
      此設定的內容將在 Start Throttle Settings 時被執行
      可以透過 Import/Export 來匯入匯出設定內容
      "Only for selected hosts" 可以只想模擬指定網站的網速

    • Throttle Preset:選擇網絡類型
    • Bandwidth:頻寬,單位是 kbps
    • Utilisation:使用率(利用率)百分比
    • Round-trip latency:往返延遲時間,單位是 ms
    • MTU:最大傳輸單位
    • Reliability:可靠率,測試丟包情況
    • Stability:穩定率,測試網絡抖動情況
    • Unstable quality range:不穩定質量範圍百分比,針對上一個內容進行設定
  • Breakpoint Settings
      進一步設定斷點的內容
      此設定的內容將在 Enable Breakpoints 時被執行
      可以透過 Import/Export 來匯入匯出設定內容

      也可以透過 Add 填入需要監控的資訊,就可以達到設置斷點的目的了
      設定斷點後可以用來觀察或修改 請求/返回 的內容
      也可以直接在想要設定斷點的請求點擊右鍵選擇 Breakpoints 來設定斷點

  • Reverse Proxies Settings
      進一步設定反向代理的內容
      可以透過 Import/Export 來匯入匯出設定內容

      也可以透過 Add 填入新增反向代理的資訊

      反向代理是在 Local 端上創建 Web server
      該 server 透明的將請求代理到遠程 Web server
      反向代理上請求和回傳內容都可以被記錄在 Charles
      如果 Client 端應用程序不支援使用 HTTP 代理或不想配置為使用代理
      那就可以透過反向代理 將 Client 應用程序連接到 Local 端

  • Port Forwarding Settings
      進一步設定端口轉發的內容
      可以透過 Import/Export 來匯入匯出設定內容

      也可以透過 Add 填入新增端口轉發的資訊

      可以將任何 TCP/IP 或 UDP 設為端口轉發工具從 Charles 轉發到遠程主機
      在 Macromedia Flash 中調試 XMLSocket 連接時,這特別有用
      還可以將 Charles 當作 SOCKS 代理,因此無需設置端口轉發

  • macOS Proxy
      開啟/關閉 記錄電腦上的所有請求
      如果想要抓取電腦請求,勾選 macOS Proxy 選項即可
      如果只要抓取手機請求,則取消勾選 macOS Proxy 選項

  • Proxy Settings
    進一步設定代理的內容

      代理端口預設為 8888 (可以編輯)
      勾選 "Use a dynamic port" 可以開啟使用動態連接端口
      勾選 "Enable transparent HTTP proxying" 就可以在 Charles 上開啟代理

  • Access Control Settings
      進一步設定訪問控制的內容
      可以透過 Import/Export 來匯入匯出設定內容

      訪問控制列表列出可以使用此 Charles instance
      通常是在自己的電腦上運行 Charles 因此 local 始終包含在訪問控制列表中
      也可以透過 Add 填入允許訪問的 IP 來新增 IP 訪問 Charles 的權限

  • External Proxy Settings
      進一步設定外部代理的內容
      可以透過 Import/Export 來匯入匯出設定內容

      如果網路上有個代理服務器必須使用該代理服務器才能訪問 Internet
      此時就可以將 Charles 配置為在嘗試訪問 Internet 時使用現有代理

      可以配置單獨的代理地址和端口:

    • Web Proxy (HTTP)
    • Secure Web Proxy (HTTPS)
    • SOCKS Proxy
  • Web Interface Settings
      進一步設定 Web 介面的內容
      可以透過 Import/Export 來匯入匯出設定內容

      勾選 "Enable the web interface" 來啟用 Web 介面
      並透過 http://control.charles 來訪問 Web 介面
      Web 介面可以用來控制 Charles 也可以作為 Web 服務使用外部程序
      透過 Web 介面也可以近一步達成自動化 Charles (像是 Selenium)


結尾

以上是這週的 Charles 內容
主要分享了安裝與選項欄中的 Proxy 功能
下週主要會以選項欄中的 Tools 功能做分享

因為小弟也是新手使用的分享文
所以介紹的內容可能有遺漏或是錯誤,還請各位大哥大姐提點
小弟將繼續往下週邁進。 ─=≡Σ((( つ•̀ω•́)つ


參考文獻

官方網站 (載點)

相關文章


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言